
# 如下是可能报错的代码，当num2是0或者非数字时，代码报错
# num1 = int(input('请输入一个整数：'))
# num2 = int(input('请输入另一个整数：'))
# result1 = num1 / num2
# print('结果：', result1)

#1 try...except
"""
try:
    可能报错的代码
except 异常类型A:
    异常处理代码（报错后执行的代码）
except 异常类型B:
    异常处理代码（报错后执行的代码）
"""
try:
    num1 = int(input('请输入一个整数：'))
    num2 = int(input('请输入另一个整数：'))
    result1 = num1 / num2
    print('结果：', result1)
except ZeroDivisionError:
    print('除数不能为0')
except ValueError:
    print('不能将字符串转为整数')
except BaseException:
    print('未知异常')

#2 try...except...else...finally
"""
try:
    可能报错的代码
except 异常类型:
    异常处理代码（报错后执行的代码）
else:
    没有抛出异常要执行的代码
finally:
    无论是否产生异常，都要执行的代码
"""
try:
    num1 = int(input('请输入一个整数：'))
    num2 = int(input('请输入另一个整数：'))
    result1 = num1 / num2

except ZeroDivisionError:
    print('除数不能为0')
except ValueError:
    print('不能将字符串转为整数')
except BaseException:
    print('未知异常')
else:
    print('结果：', result1)
finally:
    print('程序执行结束！')

# raise
"""
raise [Exception类型(异常描述信息)]
"""
try:
    gender = input('请输入您的性别：')
    if gender != '男' and gender != '女':
        raise Exception('性别只能是男或女')
except Exception as error1: # 将错误命名为error1
    print(error1)
